package com.woniuxy.apis;

import com.woniuxy.entity.Product;
import com.woniuxy.entity.ResponseEntity;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.*;

import java.util.Map;

/**
 * @Author: 马宇航
 * @Todo: http://myh-product/product/" + pid
 * @DateTime: 25/08/01/星期五 14:26
 * @Component: 成都蜗牛学苑
 **/
//配置远程服务的名称（底层动态代理，来获取服务名字符串） http://myh-product
@FeignClient(name = "myh-product",path = "product")
//@RequestMapping("product")  //对应之前写死的 /product/ 部分  以前的方案，现在的方案，直接在@FeignClient中配置path
public interface MyhProductApi {
    /**
     * 请求方式的拼接，@GetMapping，相当于restTemplate.getForObject()
     * 入参，就直接拼接为 get请求的 reqeustParams， /product/" + pid
     * ChangeLog : 1. 创建 (25/08/01/星期五 14:32 [马宇航]);
     * @param pid
     * @return com.woniuxy.entity.Product
    */
    @GetMapping("/{pid}")
    Product getProduct(@PathVariable("pid") Integer pid);

    @PutMapping("/{pid}/{num}")
    ResponseEntity updateProduct(@PathVariable("pid") Integer pid,
                                        @PathVariable("num") Integer num);

    @GetMapping("/")
    public ResponseEntity findByStore(@RequestParam("start_stock") Integer start_stock,
                                      @RequestParam("end_stock") Integer end_stock,
                                      @RequestParam("start_price") Integer start_price,
                                      @RequestParam("end_price") Integer end_price);
    @GetMapping("/")
    ResponseEntity findByStore(@SpringQueryMap Map<String,Integer> args);
}
